package facada

var (
	OID_WX = "WX"
)

type H2oReq struct {
	TID  string `json:"tid" binding:"required"`
	Time string `json:"time" binding:"required"`
}

type H2oRsp struct {
	TID  string `json:"tid" binding:"required"`
	Code int    `json:"code" binding:"required"`
	Msg  string `json:"msg" binding:"required"`
	Data any    `json:"data"`
}

type H2oUser struct {
	Uid      string `json:"uid" binding:"required"`
	Nickname string `json:"nickname" binding:"required"`
	Avatar   string `json:"avatar" binding:"required"`
}

type H2oWxLogin struct {
	H2oReq
	WxCode   string `json:"wxcode" binding:"required"`
	Nickname string `json:"nickname" binding:"required"`
	Avatar   string `json:"avatar" binding:"required"`
}

type H2oMoment struct {
	H2oReq
	Title      string `json:"title" binding:"required"`
	Content    string `json:"content" binding:"required"`
	Location   string `json:"location" binding:"required"`
	CreateTime string `json:"ctime" binding:"required"`
	Img        string `json:"img" binding:"required"`
}

type H2oAd struct {
	H2oReq
	AdId  string `json:"adId" binding:"required"`
	Title string `json:"title" binding:"required"`
	Img   string `json:"img" binding:"required"`
	Views int64  `json:"views" binding:"required"`
	Loves int64  `json:"love" binding:"required"`
}

type H2oEvent struct {
	Id       string `json:"id" binding:"required"`
	Title    string `json:"title" binding:"required"`
	Img      string `json:"img" binding:"required"`
	Tag      string `json:"tag" binding:"required"`
	Content  string `json:"content" binding:"required"`
	Author   string `json:"author" binding:"required"`
	Time     string `json:"time" binding:"required"`
	Location string `json:"location" binding:"required"`
	Views    int    `json:"views" binding:"required"`
	Loves    int    `json:"loves" binding:"required"`
}

type H2oNotice struct {
	Id       string `json:"id" binding:"required"`
	Title    string `json:"title" binding:"required"`
	Img      string `json:"img" binding:"required"`
	Tag      string `json:"tag" binding:"required"`
	Content  string `json:"content" binding:"required"`
	Author   string `json:"author" binding:"required"`
	Time     string `json:"time" binding:"required"`
	Expired  string `json:"expired" binding:"required"`
	Location string `json:"location" binding:"required"`
}

type H2oGoods struct {
	Id          string  `json:"id" binding:"required"`
	Title       string  `json:"title" binding:"required"`
	Thumb       string  `json:"thumb" binding:"required"`
	Desc        string  `json:"desc" binding:"required"`
	Author      string  `json:"author" binding:"required"`
	Tag         string  `json:"tag" binding:"required"`
	Num         int     `json:"num" binding:"required"`
	Price       float32 `json:"price" binding:"required"`
	OriginPrice float32 `json:"origin_price" binding:"required"`
	Currency    string  `json:"currency" binding:"required"`
}

type H2oMomentUpdate struct {
	H2oReq
	Id    string `json:"id" binding:"required"`
	Tag   string `json:"tag" binding:"required"`
	Views int    `json:"views" binding:"required"`
	Loves int    `json:"loves" binding:"required"`
}

type H2oAiTravelReq struct {
	H2oReq
	Destination string `json:"destination" binding:"required"`
	Duration    int    `json:"duration" binding:"required"`
	Budget      string `json:"budget" binding:"required"`
	Show        bool   `json:"showHiddenGems"`
	Activities  string `json:"activities"`
}

type H2oAiReq struct {
	Tid    string `json:"tid" binding:"required"`
	Cid    string `json:"cid" binding:"required"`
	Format string `json:"format" binding:"required"`
	Method string `json:"method" binding:"required"`
	Noise  int    `json:"noise" binding:"required"`
	Sign   string `json:"sign" binding:"required"`
	Body   string `json:"body" binding:"required"`
	Cb     string `json:"cb" binding:"required"`
}

type H2oAiRsp struct {
	Tid    string `json:"tid" binding:"required"`
	Cid    string `json:"cid" binding:"required"`
	Code   int    `json:"code" binding:"required"`
	Msg    string `json:"msg" binding:"required"`
	Method string `json:"method" binding:"required"`
	Body   string `json:"body" binding:"required"`
}
